A global positioning system (GPS) receiver requires signals from a number of GPS satellites in order to accurately calculate its position. The GPS receiver acquires and tracks signals consisting of carrier, pseudo random codes and modulated data from various satellites. The receiver correlates locally-generated codes with the codes received from the respective satellites to derive timing information relating the receiver time relative to the local generation of code chips to the satellite time at the times of the transmission of the corresponding code chips. The timing relationship between the receiver time and the transmission times of the various signals at the various satellites can be used in conjunction with the modulated data from the various satellites to generate a position of the receiver with respect to a reference frame shared with the satellites, for example, the earth centered earth fixed (ECEF) frame.
At least 4 satellites are required to provide a GPS position solution. Corrections to pseudo random measurements with respect to a fixed position, which is generated at a xe2x80x9cbase stationxe2x80x9d receiver, can be used to derive a relative position of the local receiver with respect to the base station position. Carrier measurements taken at the base station and the local receiver can be mixed in a known manner to generate precise relative position measurements, provided sufficient signals are available either instantaneously or over time to make it possible to resolve associated initial ambiguities of the carrier measurements. The ambiguities represent the differences in geometric distances between the local receiver, the base station receiver and the various satellites that are, at the time, being used for carrier tracking at the two receivers The resolution process typically takes between 30 seconds to a minute, but possibly more if the number of satellites in the constellation is small.
If the GPS receiver does not, at any given time, receive the signals from a minimum number of satellites, the GPS receiver is unable to calculate position information. Thereafter, when the satellite signals are again available to the GPS receiver, that is, the satellites are xe2x80x9cvisiblexe2x80x9d to the receiver, the receiver must re-acquire the signals before the receiver can resume its position calculations. Signal re-acquisition involves re-synchronizing locally-generated codes to the codes in the received signals, in order to again track the signals. Following the signal re-acquisition process, the receiver must, when operating in precise differential mode re-resolve the carrier ambiguities before precise positions become available.
During the re-acquisition operations, the user is without navigation information. During the resolution process the user is without precise position information. Accordingly, the speed with which the receiver re-acquires the signals and resolves the carrier ambiguities is of paramount importance to the user.
The GPS satellites may become unavailable to the GPS receiver for various periods of time in, for example, urban environments, when the GPS receiver travels under a bridge, through a tunnel, or through what is referred to in the literature as an xe2x80x9curban canyon,xe2x80x9d in which buildings block the signals or produce excessively large multipath signals that make the satellite signals detrimental to use for position calculations. In addition, operating the GPS receiver while passing through natural canyons and/or areas in which satellite coverage is sparse, and so forth, may similarly result in the receiver being unable to track a sufficient number of satellites. Thus, in certain environments the navigation information may be available only sporadically, and GPS-based navigation systems may not be appropriate for use as a navigation tool.
One proposed solution to the problem of interrupted navigation information is to use an inertial system to fill-in whenever the GPS receiver cannot observe a sufficient number of satellites. The inertial system, however, has well-known problems, such as accelerometer and gyroscope biases, that tend to introduce drift errors into the inertial position information over time. It has thus been proposed to use the GPS position information to limit the adverse effects of the drift errors on the position calculations in the inertial system. Further, it has been proposed to provide inertial position and velocity information to the GPS system, to aid in signal re-acquisition and in the process to resolve ambiguities. While such systems are discussed as being desirable, we are not aware of any prior GPS receivers that in real time combine the information from GPS and inertial sub-systems both to aid signal re-acquisition and to re-acquire carrier ambiguities, thereby providing accurate and uninterrupted navigation information in an environment in which GPS satellite information is not essentially continuously available.
The invention is a receiver that uses a single processor to control a GPS sub-system and an inertial (xe2x80x9cINSxe2x80x9d) sub-system and, through software integration, shares GPS and INS position and covariance information between the sub-systems. The receiver time tags the INS measurement data using a counter that is slaved to GPS time, and the receiver then uses separate INS and GPS filters to produce GPS and INS position information that is synchronized in time. The GPS/INS receiver utilizes GPS position and associated covariance information in the updating of an INS Kalman filter, which provides updated system error information that is used in propagating inertial position, velocity and attitude. Further, the receiver utilizes the inertial position, velocity and covariance information in the GPS filters to speed up GPS satellite signal re-acquisition and associated ambiguity resolution operations.
The GPS/INS receiver uses particularly robust inertial processing to produce inertial position and covariance information from which the GPS sub-system can readily calculate theoretical pseudoranges, and Doppler rates that are sufficiently close to the actual values so as to significantly reduce the time it takes the receiver to re-acquire the satellite signals. The signal re-acquisition times are reduced even if the GPS satellites remain unavailable to the receiver for relatively long periods of time and/or the periods of unavailability occur relatively frequently, such as in a typical urban environment.
When the receiver is turned on, the receiver performs GPS signal acquisition and tracking operations in a conventional manner and determines an initial GPS position. As soon as a position becomes available, the receiver also performs a coarse alignment as part of the INS processing. The coarse alignment, which assumes the receiver is stationary, includes a reference frame recognition operation that establishes, for receiver accelerometer and gyroscope measurements, a reference frame with a z-axis pointing away from the gravity vector. The INS processing then estimates the noise level on the INS measurements, and calculates an initial attitude, represented by the Euler angles relating the body i.e., an Inertial Measurement Unit (IMU) frame, to the computational frame, i.e., the Earth Centered Earth Fixed (ECEF) frame. The alignment is computed over time with the use of accelerometer and gyroscope measurements, and the accuracy of the alignment increases as averaging over the alignment time decreases the effect of noise on the measurements. Further, the INS processing calculates an inertial velocity and an inertial position, which is calculated relative to the initial GPS position. The INS processing also initializes an INS Kalman filter using the initial GPS position and related covariance information, and the INS sub-system parameters and other INS sub-system related information.
After coarse alignment, the INS sub-system operates in a navigation mode to process the inertial measurements. The navigation mode begins at the earlier of the time the receiver is put into motion or a predetermined time after the first GPS position information becomes available to the INS sub-system. If the receiver is not in motion at the start of navigation mode, the INS processing performs fine alignment operations, to compensate for the adverse effects of xe2x80x9cfalse observables,xe2x80x9d such that the INS sub-system can better adapt once the receiver is put in motion. Thereafter, whenever the receiver is again stationary, the INS sub-system performs xe2x80x9czero-velocity updates,xe2x80x9d (ZUPT) to more accurately compensate in the Kalman filter for component measurement biases and measurement noise. The INS processing operations are discussed in more detail below.
In navigation mode, while the receiver is tracking the signals from an appropriate number of GPS satellites, the receiver provides to the user navigation information that includes GPS position information and, as appropriate, inertial attitude and velocity information. At the same time, the receiver uses the GPS position and associated covariance information to update the INS Kalman filter.
Whenever a sufficient number of satellites are unavailable to the receiver, the receiver uses the INS position in the navigation information. At the same time, the receiver continuously attempts to re-acquire satellite signals. For this task, the GPS sub-system uses the inertial position and velocity information to generate, for the respective satellites, theoretical pseudoranges and associated theoretical Doppler rates that, because of robust INS processing, are close to the actual values. The GPS sub-system then uses the theoretical values to re-set the respective code generators and associated Doppler correction circuits, such that the receiver quickly locks its tracking loops to the respective satellite signals. Further, the GPS sub-system uses the inertial position and covariance information to aid in quickly resolving associated carrier cycle ambiguities. The receiver can thus relatively quickly resume using the GPS position in the navigation information. The signal re-acquisition and ambiguity re-resolution operations are discussed in more detail below.